The present invention relates generally to robotic manipulator systems. More particularly, the invention relates to a motion system architecture for controlling the movements of a robotic manipulator.
With the increasing importance of automation in manufacturing all types of articles, the demand for robotic systems has escalated. In response to the increased demand for robotic systems, multiple manufacturers have introduced a wide variety of robotic systems for various applications. An equally wide variety of kinematics configurations for the robots have been devised as manufacturers seek to optimize their robots for particular markets.
To control the movements of a robotic system a motion system is included in an associated computer system. The motion system for a particular robotic system must be tailored to that robot""s particular kinematics configuration. Different link lengths and joint configurations require the controlling equations to be adapted to those parametric differences. When there were only a small number of different types of robotic systems, the task of maintaining unique motion systems for each type of robotic system was not overly complex. However, as the variety of robotic systems has increased, the complexity of maintaining unique motion systems has also increased. Modifications and upgrades to existing robotic systems further increased the burden on maintaining motion systems.
Initially, unique motion systems were designed for each type of robotic system. Then, motion system architectures were changed so that unique kinematics configuration libraries were maintained for each of the different types and versions of robotic systems. An inherent disadvantage of separate kinematics configuration libraries is that changes made in the kinematics interface would often entail modifications to each of the configuration libraries. Maintaining separate kinematics configuration libraries eventually became overly cumbersome as the number of libraries increased to keep up with increasing number of robotic systems. Motion systems were then modified to incorporate all of the unique kinematics configuration libraries within the main motion system file. This new arrangement still suffers from the disadvantage of code duplication within the main program for high level kinematics functions. When the motion program is revised, the code duplication of the kinematics functions necessitates that the modifications resulting from the revision must be implemented in each of the kinematics program modules. Modifying and maintaining each of the kinematics modules is a time consuming and risky venture. An incorrect modification of any of the kinematics modules can result in improper operation of the motion system. Similar problems occurred with the servo interface.
In view of the above, it is a primary object of the present invention to provide a motion system that minimizes the duplication of common functions.
Additionally, it is an object of the present invention to provide a motion system that encapsulates common functions into groupings that are related to physical characteristics of the controlled robotic system.
The present invention provides an object oriented motion system for controlling the movement of a robotic manipulator that is driven by a servo system. The motion system includes a trajectory generator object for producing a stream of machine joint commands. A kinematics object is operable to provide a set of robotic arm specific functions for the trajectory generator object. A servo object provides an interface to the servo system. The stream of machine joint commands are converted by the servo object to a stream of hardware specific commands that drive the servo system, thereby controlling the trajectory of the robot arm.
For a more complete understanding of the invention, its objectives and advantages, refer to the following specification and to the accompanying drawings.